#ifndef __MY_CIRCLE_H__
#define __MY_CIRCLE_H__

#include<list>
#include<iostream>
#include<math.h>
#include "Gotoxy.h"
#include "screen.h"
#include "Shape.h"

using namespace std;

class MyCircle : public Shape
{
	int m_radius;

public:
	//c'tor
	MyCircle():m_radius(0){};
	//c'tor with file
	MyCircle( ifstream &in_file, bool binary = true);
	//copy c'tor
	MyCircle(MyCircle &other);
	void setShape();
	int getRadius()const{return m_radius;}
	void setRadius(int radius){ m_radius = radius;}
	void calcMoveAux(ShapeContainer &work_cont,list<Shape*>::iterator itr,bool withTransfer);

	//virtuals
	virtual void draw(char sign = '*');
	virtual void drawWithHiding(char sign = '*');
	virtual bool isInShape(int x, int y);
	virtual Shape* copyShape(const Shape* other);
	virtual void drawToBuffer( screen &scr);
	virtual void calcShapeMove(ShapeContainer &work_cont, list<Shape*>::iterator itr, bool withTransfer);
	virtual void save( ofstream &out_file,bool binary);
};

#endif
